home *** CD-ROM | disk | FTP | other *** search
-
- ÃPAô > RHsourceFN : Assembler FN to generate module header.
- ÃZ"Ý ¤assemble_MiniDumpAP(start%)
- Ãd&ô FN Version 3.00 : 5th Dec 1987
- Ãn)ô Copyright : ABACUS TRAINING
- Ãx:
- Ãŵ.ê margin,threshold,printmode,sp,pass%,end%
- Ã…4ê modulehelp,keywords,moduletitle,readparameters
- Ä!ê minparameters,maxparameters
- Ã ê badsyntax,keywordhelp
- ê5ê margindefault,thresholddefault,printmodedefault
- ô<ê fail,badparameters,badmargin,badthreshold,badprintmode
- þê Ŷ
- ÃÈ/î Ŷ ÿ("FX 3,0"):ï 26,12:ö:ñ " at line ";fi:ú
- ÃÒ:
- ÃÜ:
- Ãæ:
- Ãð8ô Choose the default values of the three parameters.
- Ãú6margindefault = 18 :ô Default value of margin
- Ä9thresholddefault = 0 :ô Default value of threshold
- Ä9printmodedefault = 7 :ô Default value of printmode
- Ä:
- Ä":
- Ä,:
- Ä6$ô Registers used for parameters.
- Ä@9margin = 4 :ô Left margin in tenths of an inch.
- ÄJ5threshold = 5 :ô The logical colour threshold.
- ÄT5printmode = 6 :ô The printmode must be 5 or 7.
- Ä^:
- Äh:
- Ärô Use the BASIC stack.
- Ä|&sp = 13 :ô Stack pointer.
- Äŷ:
- Ä‘:
- ÄŒ7ô Set the minimum and maximum number of parameters.
- Ĥ9minparameters = 0 :ô The minimum number of parameters
- Ä®9maxparameters = 3 :ô The maximum number of parameters
- ĸ:
- ÄÂ:
- ÄÌã pass% = 0 ¸ 3 ⇦ 3
- ÄÖ
- P%=start%
- Äà[OPT pass%
- Äê
- EQUD 0
- Äô
- EQUD 0
- Äþ
- EQUD 0
- Å
- EQUD 0
- ÅEQUD (moduletitle-start%)
- ÅEQUD (modulehelp-start%)
- Å&EQUD (keywords-start%)
- Å0
- EQUD 0
- Å:
- EQUD 0
- ÅD
- EQUD 0
- ÅN
- EQUD 0
- ÅX.moduletitle
- ÅbEQUS "MiniDumpRM"
- Ål
- EQUB 0
- Åv ALIGN
- ŀ.modulehelp
- Å⇩CEQUS "Screen Dump"+½(&09)+"3.00 (05 Dec 1987) ABACUS TRAINING"
- Å“
- EQUB 0
- Åfi ALIGN
- Ũ
- .keywords
- ŲEQUS "MiniDump"
- ż
- EQUD 0
- ÅÆ ALIGN
- ÅÐ EQUD (readparameters-start%)
- ÅÚEQUW minparameters
- ÅäEQUW maxparameters
- ÅîEQUD (badsyntax-start%)
- ÅøEQUD (keywordhelp-start%)
- Æ
- EQUD 0
- Æ.badsyntax
- ÆSEQUS "Syntax:"+½(&09)+"*MiniDump [<margin> [<threshold> [<printmode>]]]"+½(&0D)
- Æ
- EQUB 0
- Æ* ALIGN
- Æ4.keywordhelp
- Æ>KEQUS "*MiniDump"+½(&09)+"[<margin> [<threshold> [<printmode>]]]"+½(&0D)
- ÆH9EQUS ½(&09)+½(&09)+"<margin> between 0 and 79"+½(&0D)
- ÆR=EQUS ½(&09)+½(&09)+"<threshold> between 0 and 255"+½(&0D)
- Æ\:EQUS ½(&09)+½(&09)+"<printmode> must be 5 or 7"+½(&0D)
- Æf
- EQUB 0
- Æp ALIGN
- Æz.badparameters
- Æ☓EQUD &00800100
- ƉEQUS "Bad Parameters"
- Æ—
- EQUB 0
- Ƣ ALIGN
- Ƭ.badmargin
- ƶEQUD &00800100
- ÆÀ,EQUS "<margin> must be between 0 and 79"
- ÆÊ
- EQUB 0
- ÆÔ ALIGN
- ÆÞ.badthreshold
- ÆèEQUD &00800100
- Æò0EQUS "<threshold> must be between 0 and 255"
- Æü
- EQUB 0
- Ç ALIGN
- Ç.badprintmode
- ÇEQUD &00800100
- Ç$,EQUS "<printmode> must be either 5 or 7"
- Ç.
- EQUB 0
- Ç8 ALIGN
- ÇB .fail
- ÇLCMP R15,#&80000000
- ÇVLDMFD (sp)!,{R3-R12,PC}
- Ç`.readparameters
- ÇjSTMFD (sp)!,{R3-R12,R14}
- ÇtMOV margin,#margindefault
- Ç~#MOV threshold,#thresholddefault
- Ç⇦#MOV printmode,#printmodedefault
- Ç‹
- MOV R3,R1
- dž
- MOV R1,R0
- ǦADR R0,badparameters
- ǰ
- CMP R3,#0
- ǺBEQ storeparameters
- ÇÄSWI "OS_ReadUnsigned"
- ÇÎBVS fail
- ÇØADR R0,badmargin
- ÇâCMP R2,#79
- ÇìBGT fail
- ÇöMOV margin,R2
- È
- CMP R3,#1
- È
- BEQ storeparameters
- ÈSWI "OS_ReadUnsigned"
- ÈBVS fail
- È(ADR R0,badthreshold
- È2CMP R2,#255
- È<BGT fail
- ÈFMOV threshold,R2
- ÈP
- CMP R3,#2
- ÈZBEQ storeparameters
- ÈdSWI "OS_ReadUnsigned"
- ÈnBVS fail
- ÈxADR R0,badprintmode
- Èŵ
- CMP R2,#5
- È…BLT fail
- È„
- CMP R2,#7
- È BGT fail
- Ȫ
- CMP R2,#6
- È´BEQ fail
- ȾMOV printmode,R2
- ÈÈ.storeparameters
- ÈÒMOV R0,margin
- ÈÜMOV R1,threshold
- ÈæMOV R2,printmode
- ÈðLDMFD (sp)!,{R3-R12,R14}
- Èú]
- Éí pass%
- É:
- É:
- É":
- É,end%=P%
- É6:
- É@:
- ÉJ:
- ÉT =end%
- É^:
- Éh:
- ÿ